package com.amumu.drama.common.modules.category.service;

import com.amumu.drama.common.base.api.CommonPage;
import com.amumu.drama.common.base.api.CommonResult;
import com.amumu.drama.common.modules.category.dto.GameQueryDto;
import com.amumu.drama.common.modules.category.dto.GameTemplateDto;
import com.amumu.drama.common.modules.category.dto.GameTemplateQueryDto;
import com.amumu.drama.common.modules.category.vo.GameTemplateInfoVo;
import com.amumu.drama.common.modules.category.vo.GameTemplateVo;
import com.amumu.drama.common.modules.category.vo.GameVo;
import com.amumu.drama.model.PmsProductTemplate;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;


/**
 * @author xcj
 * @date 2024/04/02
 */
public interface PmsProductTemplateService extends IService<PmsProductTemplate> {

    /**
     * 添加或者修改游戏模板
     *
     * @param gameTemplateDto
     * @return
     */
    CommonResult<String> addOrUpdateGameTemplate(GameTemplateDto gameTemplateDto);

    /**
     * 删除游戏自定义模板
     *
     * @param gameTemplateId
     * @return
     */
    CommonResult<String> deleteGameTemplate(Long gameTemplateId);


    /**
     * 分页查询商品
     */
    IPage<GameTemplateVo> pageGameTemplateList(GameTemplateQueryDto gameTemplateVo);

    /**
     * 获取游戏模板详情
     *
     * @param gameTemplateId
     * @return
     */
    CommonResult<GameTemplateInfoVo> getGameTemplateInfo(Long gameTemplateId);

    /** 查询还未绑定的游戏列表 */
    CommonPage<GameVo> pageGameList(GameQueryDto gameQueryDto);

    /** 解绑游戏模板 */
    CommonResult<String> unbindGame(Long gameTemplateId);
}
